//preloading.....
load("library/common.js");

JEuler.system.loadJS("library/math.js");

(function() {

    var PrimeUtils = JEuler.math.PrimeUtils;
    
    JEuler.system.printCaption(60);
    JEuler.system.startTimerCount();
    
    PrimeUtils.sievePrime(10000);
    PrimeUtils.printCachedPrimes("v");
    
    var testProperty = function(a, b) {
        if(a instanceof Array) {
            for(var i=0; i<a.length; i++) {
                if(!testProperty(a[i],b)) return false;
            }
            return true;
        } else {
            return PrimeUtils.isPrime(parseInt(a+""+b, 10)) 
                && PrimeUtils.isPrime(parseInt(b+""+a, 10)); 
        }
    }
    
    var primes = PrimeUtils.getPrimePool();
    
    var findPrimes=[], findPrimesIndex=[], i=2;
    do{
        if(testProperty(findPrimes, primes[i])) {
            findPrimes.push(primes[i]);
            findPrimesIndex.push(i);
            if(findPrimes.length==5) {
                JEuler.system.print("Find....");
                JEuler.system.print(findPrimes);
                JEuler.system.print("Sum=" + eval(findPrimes.join("+")));
                break;
            }
        }
        i++;
        if(i==primes.length) {
            i=findPrimesIndex.pop()+1;
            findPrimes.pop();
        }
    }while(1);
    
    JEuler.system.printTimerCount();

        
    
})();
